// pages/course/zxkc/zxkc.js
let app = getApp();//引入全局文件
Page({

  /**
   * 页面的初始数据
   */
  data: {
    url:'',
    pageNum:1,
    pageSize:4,
    courses:[],
    pages:0,
    isLoading: false, // 节流阀，false没有正在加载的数据，可以加载；true不可加载
    // 顶部主要排序选项
    mainOptions: [
      { key: 'default', label: '综合排序', active: true },
      { key: 'popularity', label: '人气', active: false },
      { key: 'rating', label: '好评率', active: false },
    ],
    priceExpanded: false,
    priceRangeExpanded: false,
    priceSortType: 'asc', // 'asc' 或 'desc'
    priceRanges: [
      { value: '0-0', label: '免费', active: false },
      { value: '0-50', label: '¥50以下', active: false },
      { value: '50-100', label: '¥50-100', active: false },
      { value: '100-500', label: '¥100-500', active: false },
      { value: '500-1000', label: '¥500-1000', active: false },
      { value: '1000-999999999', label: '¥1000以上', active: false }
    ],
    priceActive: false,
    priceRangeActive: false,
    interval:''   //价格区间
  },
  
  // 点击顶部排序项（综合、人气、好评率）
  onMainOptionTap(e) {
    const key = e.currentTarget.dataset.key;
    let mainOptions = this.data.mainOptions.map(item =>
      item.key === key ? { ...item, active: true } : { ...item, active: false }
    );
    this.setData({ 
      mainOptions,
      priceRangeExpanded: false, // 关闭价格区间
      priceExpanded: false, // 关闭价格排序
      priceActive: false,       // 重置价格激活状态
      priceRangeActive: false   // 重置价格区间激活状态
    });
    if(key=='default'){
      this.setData({
        priceSortType:null,
        interval:null,
        courses:[],
        pageNum:1
      })
      this.getCourseByRuler();

    }
  },

  // 点击"价格"
  onPriceTap() {
    // 重置主选项的选中状态
    let mainOptions = this.data.mainOptions.map(item => ({
      ...item,
      active: false
    }));
    
    this.setData({
      mainOptions,
      priceExpanded: !this.data.priceExpanded,
      priceRangeExpanded: false,
      priceActive: true,        // 设置价格激活状态
      priceRangeActive: false   // 重置价格区间激活状态
    });
  },

  // 点击"价格区间"
  onPriceRangeTap() {
    // 重置主选项的选中状态
    let mainOptions = this.data.mainOptions.map(item => ({
      ...item,
      active: false
    }));
    
    this.setData({
      mainOptions,
      priceRangeExpanded: !this.data.priceRangeExpanded,
      priceExpanded: false,
      priceActive: false,       // 重置价格激活状态
      priceRangeActive: true    // 设置价格区间激活状态
    });
  },

  // 点击价格升序/降序 → 直接触发，无需确定按钮
  onPriceSortSelected(e) {
    const type = e.currentTarget.dataset.type;
    this.setData({ 
      priceSortType: type,
      priceActive: true,        // 保持价格激活状态
      priceRangeActive: false   // 重置价格区间激活状态
    });
    // this.onPriceSortConfirmed(type); // 直接调用处理函数
  },

  onPriceSortConfirmed() {
    // console.log('价格排序选中:', type);
    // TODO: 执行价格排序逻辑，比如调用接口或本地排序
    this.setData({
      courses:[],
      pageNum:1,
      interval:null
    })
    this.getCourseByRuler();
    
  },

  // 点击价格区间选项 → 赋值给变量
  onPriceRangeSelected(e) {
    const value = e.currentTarget.dataset.value;
    let priceRanges = this.data.priceRanges.map(item =>
      item.value === value ? { ...item, active: true } : { ...item, active: false }
    );
    this.setData({ 
      priceRanges,
      priceActive: false,       // 重置价格激活状态
      priceRangeActive: true    // 保持价格区间激活状态
    });
    // this.onPriceRangeConfirmed(value); // 直接调用处理函数
  },

  onPriceRangeConfirmed(value) {
    console.log('价格区间选中:', value);
    this.setData({
      courses:[],
      pageNum:1,
      interval:value,
      priceSortType:'asc'
    })
    // TODO: 执行价格区间筛选逻辑
    this.getCourseByRuler();
  },

  // 可选的确定按钮逻辑（如果保留）
  onPriceConfirm() {
    this.onPriceSortConfirmed(this.data.priceSortType);
    this.setData({ 
      priceExpanded: false,
      priceActive: true         // 保持价格激活状态
    });
  },

  onPriceRangeConfirm() {
    // 获取当前选中的价格区间
    const active = this.data.priceRanges.find(item => item.active);
    if (active) {
      this.onPriceRangeConfirmed(active.value);
    }
    this.setData({ 
      priceRangeExpanded: false,
      priceRangeActive: true    // 保持价格区间激活状态
    });
  },
  
  // getCourse(){
  //   //加载提示
  //   wx.showLoading({
  //     title: '正在加载中',
  //   })
  //   // 开启加载状态
  //   this.setData({
  //     isLoading: true
  //   })
  //   wx.request({
  //     url: this.data.url+'controller/page',
  //     method:'GET',
  //     data:{
  //       pageNum:this.data.pageNum,
  //       pageSize:this.data.pageSize
  //     },
  //     success:resp=>{
  //       this.setData({
  //         courses:[...this.data.courses,...resp.data.data.list],
  //         pages:resp.data.data.pages
  //       })
  //     },
  //     complete:()=>{
  //       // 关闭加载状态
  //       this.setData({
  //         isLoading: false
  //       })
  //       //取消加载提示
  //       wx.hideLoading()
  //       //停止下拉刷新
  //       wx.stopPullDownRefresh()
  //     }
  //   })
  // },
  getCourseByRuler(){
    wx.showLoading({
      title: '数据加载中',
    })
    this.setData({
      isLoading:true
    })
    wx.request({
      url: this.data.url+'controller/sort',
      data:{
        sortType:this.data.priceSortType,
        pageNum:this.data.pageNum,
        pageSize:this.data.pageSize,
        interval:this.data.interval
      },
      success:resp=>{
        this.setData({
          courses:[...this.data.courses,...resp.data.data.list],
          pages:resp.data.data.pages
        })
      },
      complete:()=>{
        wx.hideLoading()
        wx.stopPullDownRefresh()
        this.setData({
          isLoading:false
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      url:app.globalData.url,//把全局的url赋值给当前页面中的url
      priceSortType:null,
      interval:null
    }),
    // this.getCourse();
    this.getCourseByRuler();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      pageNum:1,
      pageSize:this.data.pageSize,
      courses:[],
      pages:0
    })
    // this.getCourse();
    this.getCourseByRuler();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    console.log("下拉函数")
    // 如果节流阀启动，则不可以加载下一页
    if (this.data.isLoading) {
      return;
    }
    this.setData({
      pageNum:this.data.pageNum+1
    })
    if(this.data.pageNum>this.data.pages){
      wx.showToast({
        title: '已经到底了~',
        icon:'success'
      })
      return;
    }
    // this.getCourse();
    this.getCourseByRuler()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})